/*
 * arvore.h
 *
 *  Created on: 05/06/2011
 *      Author: joao e sheila
 */

#ifndef ARVORE_H_
#define ARVORE_H_

#include "lista.h"
#include "arquivo.h"

/* Estruturas para uma arvore de palavras */
typedef struct _no {
    char *chave; /* Palavra armazenada */
    int bal; /* Indicacao sobre balanceamento:
              -1 se esq. maior, 0 se balanceado,
              1 se dir maior */
    int quantidade; /* numero de ocorrencias */

    LISTA linhas; /*mantive aqui para poder compilar*/

    Lista_arquivo listaarq; /* linhas que contem os arquivos que tem as palavras junto com as linhas */

    struct _no *esq, *dir; /* Ponteiros para sub-arvores esq e dir */
} no;

void rot_dir(no **p);
void rot_esq(no **p);
int insereAVL(char *x, no **p, TipoElemento linha, char *nome_livro);
void imprime(no *raiz, int nivel);
no *busca(char *x, no *raiz);


#endif /* ARVORE_H_ */
